IF exists(SELECT * FROM dbo.sysobjects WHERE name='geefKlasNummers' AND xtype='P') 
BEGIN
	DROP PROCEDURE geefKlasNummers
END
GO

CREATE  procedure geefKlasNummers
as
set nocount on
declare @aantal int
declare @klasNr int
declare @oudeKlas char(5)
declare @nieuweKlas char(5)
set @oudeKlas=''
set @aantal = 1

declare deCursor cursor local
for select klas,klasNr from leerlingen
  order by klas, naam1,voornaam
for update of klasnr

open deCursor

fetch next from deCursor into @nieuweKlas,@klasNr
while (@@fetch_status=0)
  begin
    if (@nieuweKlas = @oudeKlas)  
          set @aantal = @aantal + 1
    else 
	begin
    	  set @aantal = 1 
	  set @oudeKlas = @nieuweKlas
	end
    update leerlingen set klasNr = @aantal where current of deCursor
    fetch next from deCursor into @nieuweKlas,@klasNr
  end
  	
deallocate deCursor
select achternaam,voornaam,klas,klasnr from leerlingen order by klas,klasnr